Repository navigation
fix(security): Filesystem grants derived from the inner command must not follow interpreter or symlink content that lives where the confined process can write, and each derived directory needs a bounded taint decision. - #446
github-actions[bot] wants to merge 5 commits into
Conversation
Signed-off-by: Test Writer Agent <test-writer@security-remediate.invalid>
Signed-off-by: Test Writer Agent <test-writer@security-remediate.invalid>
…not follow interpreter or symlink content that lives where the confined process can write, and each derived directory needs a bounded taint decision. Signed-off-by: Fix Writer Agent <fix-writer@security-remediate.invalid>
…not follow interpreter or symlink content that lives where the confined process can write, and each derived directory needs a bounded taint decision. Signed-off-by: Fix Writer Agent <fix-writer@security-remediate.invalid>
|
[AI] Needs fix at
Verification: existing non-integration sandboxrun/sandboxprofile tests pass with CI is action_required, with no jobs; DCO alone is green. Do not merge: repair the boundaries, retain regression tests, and obtain successful real-backend CI plus human approval. |
|
[AI] LOCAL / NOT PUSHED: repair prepared for F1–F5 on Regression and compatibility controls pass; affected race run: 305 pass / 2 skip events. Vet and Linux cross-compilation pass. Full fixed/pristine runs have identical 25 integration failures under outer-sandbox restrictions; Linux runtime was not exercised. Pending fresh independent review and human push. Not merge-ready. |
|
[AI] Independent re-review of LOCAL patch
Remaining gates: another repair/re-review, human push, successful exact-head CI (current run still |
|
[AI] LOCAL / NOT PUSHED, R2: cumulative repair addresses F6/F7 while retaining F1–F5 and compatibility controls. Missing Linux execution spellings now link only to already-mounted namespace paths, without new alias host binds; conflicting layouts fail closed. Red/green namespace cases pass. Affected race run: 317 pass / 2 skip events; vet, Linux compilation, and actual 10-file patch application/byte checks pass. Full runs retain the same 25 outer-sandbox integration failures as pristine head. The native Linux execution gate is added but unexecuted here (macOS, no bwrap). Fresh independent review and human push remain pending; this is not merge approval. |
|
[AI] Independent review of LOCAL cumulative candidate
All 10 patch files independently hash/applied/byte-verified. Supplied affected race suite: 317 pass / 2 skip; the final suite retains four fresh failing subcases, while all five pristine controls pass. Vet/Linux compilation pass; full fixed/pristine runs share the same 25 outer-sandbox failures. Linux runtime is pending: Darwin host, no bwrap; compile/model checks are not execution. Preserve all regressions and require all five |
|
[AI] LOCAL / NOT PUSHED, R3: cumulative repair for F8/F9 on
Verification: F1-F9/compatibility race suite passes (324 pass, 2 expected skips); vet, formatting, Linux cross-compile, exact R2 materialization, fresh 10-path patch application, and byte checks pass. Full fixed/pristine focused runs have the same 25 outer-sandbox integration failures. Linux bwrap execution is not claimed on Darwin. Pending independent review, human-only push, and actual Linux CI execution of all native cases. Not merge-ready. |
|
[AI] Independent R4 review of the LOCAL / UNPUSHED cumulative candidate Remote head is still the original baseline; main is |
Retain required execution and interpreter spellings in the sandbox namespace. Root read/write authorization alone does not materialize those mounts. Refs #321 🤖 Generated with OpenCode Signed-off-by: Sajjad Ahmad <sajjad.ahmad@tngtech.com>
|
[AI] LOCAL / NOT PUSHED: prepared a two-file repair on 39c3c6a. It removes the staticcheck-dead SBPL wrapper and makes the macOS cycle assertion compare directory identity, preserving the checked literal execution spellings used by Linux namespace aliases. Patch: 013228f95490c55c6b4c05051923ce93dc2bb92e3178081c97f7eecc97f8fba2. Focused F1-F9 race controls, vet, staticcheck ./..., and Linux cross-compile passed; native macOS/Seatbelt and Linux bwrap CI remain gates. |
|
[AI] Independent local-patch review of SHA-256 |
Issue: Refs #321
What
Why
How
resolveInnerBinaryDirsnow takes a policy built from the grants (derivedGrantPolicyForGrants, internal/sandboxrun/resolve_binary.go) and returns every path the resolution visited;refuseDerivedGrantschecks each derived directory against it and fails the launch closed when a rule is crossed.BuildChildArgv(internal/sandboxrun/backend_linux.go, internal/sandboxrun/backend_darwin.go).Verification
Follow-up